using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using System.Drawing;

namespace IngenEngine
{
	public class Cube
	{
		public Cube()
		{

		}
		private CustomVertex.PositionColored[] verts;

		private CustomVertex.PositionColored[] AssignVectors()
		{
			//Vectors
			verts = new CustomVertex.PositionColored[36];

			//Front Face
			verts[0] = new CustomVertex.PositionColored(-1, 1, 1, Color.Red.ToArgb());
			verts[1] = new CustomVertex.PositionColored(-1, -1, 1, Color.Red.ToArgb());
			verts[2] = new CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb());
			verts[3] = new CustomVertex.PositionColored(-1, -1, 1, Color.Red.ToArgb());
			verts[4] = new CustomVertex.PositionColored(1, -1, 1, Color.Red.ToArgb());
			verts[5] = new CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb());

			//Back Face (facing away from the camera, so vertices are in clockwise order)
			verts[6] = new CustomVertex.PositionColored(-1, 1, -1, Color.Blue.ToArgb());
			verts[7] = new CustomVertex.PositionColored(1, 1, -1, Color.Blue.ToArgb());
			verts[8] = new CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb());
			verts[9] = new CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb());
			verts[10] = new CustomVertex.PositionColored(1, 1, -1, Color.Blue.ToArgb());
			verts[11] = new CustomVertex.PositionColored(1, -1, -1, Color.Blue.ToArgb());

			//Top Face
			verts[12] = new CustomVertex.PositionColored(-1, 1, 1, Color.Yellow.ToArgb());
			verts[13] = new CustomVertex.PositionColored(1, 1, -1, Color.Yellow.ToArgb());
			verts[14] = new CustomVertex.PositionColored(-1, 1, -1, Color.Yellow.ToArgb());
			verts[15] = new CustomVertex.PositionColored(-1, 1, 1, Color.Yellow.ToArgb());
			verts[16] = new CustomVertex.PositionColored(1, 1, 1, Color.Yellow.ToArgb());
			verts[17] = new CustomVertex.PositionColored(1, 1, -1, Color.Yellow.ToArgb());

			//Bottom Face (facing away from the camera, so vertices are in clockwise order)
			verts[18] = new CustomVertex.PositionColored(-1, -1, 1, Color.Black.ToArgb());
			verts[19] = new CustomVertex.PositionColored(-1, -1, -1, Color.Black.ToArgb());
			verts[20] = new CustomVertex.PositionColored(1, -1, -1, Color.Black.ToArgb());
			verts[21] = new CustomVertex.PositionColored(-1, -1, 1, Color.Black.ToArgb());
			verts[22] = new CustomVertex.PositionColored(1, -1, -1, Color.Black.ToArgb());
			verts[23] = new CustomVertex.PositionColored(1, -1, 1, Color.Black.ToArgb());

			//Left face
			verts[24] = new CustomVertex.PositionColored(-1, 1, 1, Color.Purple.ToArgb());
			verts[25] = new CustomVertex.PositionColored(-1, -1, -1, Color.Purple.ToArgb());
			verts[26] = new CustomVertex.PositionColored(-1, -1, 1, Color.Purple.ToArgb());
			verts[27] = new CustomVertex.PositionColored(-1, 1, -1, Color.Purple.ToArgb());
			verts[28] = new CustomVertex.PositionColored(-1, -1, -1, Color.Purple.ToArgb());
			verts[29] = new CustomVertex.PositionColored(-1, 1, 1, Color.Purple.ToArgb());

			//Right face (facing away from the camera, so vertices are in clockwise order
			verts[30] = new CustomVertex.PositionColored(1, 1, 1, Color.Green.ToArgb());
			verts[31] = new CustomVertex.PositionColored(1, -1, 1, Color.Green.ToArgb());
			verts[32] = new CustomVertex.PositionColored(1, -1, -1, Color.Green.ToArgb());
			verts[33] = new CustomVertex.PositionColored(1, 1, -1, Color.Green.ToArgb());
			verts[34] = new CustomVertex.PositionColored(1, 1, 1, Color.Green.ToArgb());
			verts[35] = new CustomVertex.PositionColored(1, -1, -1, Color.Green.ToArgb());

			return verts;
		}

		private void Animate(Device device)
		{ 
		
		}

		public void Render()
		{
			
		}
	}
}